<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //处理错误可以在async 函数内部使用try catch   也可以在async 函数外部使用.catch 因为async 函数返回的是一个Promise

        function ajax(url){
            return new Promise((resolve,reject)=>{
              
                const xhr = new XMLHttpRequest()
                xhr.open('GET',url)
                xhr.responseType = 'json'
                xhr.send()
                xhr.onload = ()=>{
                  
                    if(xhr.status === 200){
                        resolve(xhr.response)
                    }else{
                        reject(new Error(xhr.statusText))
                    }
                }
                xhr.onerror = (error)=>{
                    
                    reject('错误')
                }
            })
        }


        //1.在async 函数外部使用.catch
        // async function getData(){
            
        //     const res = await ajax('http://api.uomg.com/api/rand.qinghua')
        //     return res
        // }
        // getData().then(val=>{
        //     console.log(val)
        // }).catch(err=>{
        //     console.log(err)
        // })  

        //2.在async 函数内部使用try catch
         async function getData(){
            try {
                const res = await ajax('http://sapi.uomg.com/api/rand.qinghua')
                return res
            } catch (error) {
                console.log(error) 
            }
            
        }
        getData().then(val=>{
            console.log(val)
        })
    </script>
</body>
</html>